package org.example.petsystem.utils;

import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

public class FileUploadUtil {

    static final String IP= "http://127.0.0.1:8080";
    static final String upload = "/resources/images";
    /**
     * 上传文件并保存到指定目录
     * @param file        要上传的文件
     * @return 返回文件的访问路径，如果失败则返回 null
     */
    public static String uploadFile(MultipartFile file) {
        if (file == null || file.isEmpty()) {
            System.out.println("空文件，上传失败！");
            return null;
        }

        try {
            // 获取 JAR 包所在目录，并拼接 upload 路径
            String jarPath = new File("").getAbsolutePath(); // 当前工作目录（JAR 包所在目录）
            String uploadDir = jarPath + upload;
            // 创建目标目录（如果不存在）
            File dir = new File(uploadDir);
            if (!dir.exists()) {
                dir.mkdirs(); // 如果目录不存在，则创建
            }
            // 获取文件名称，并使用 UUID 避免命名冲突
            String originalFileName = file.getOriginalFilename();
            String fileExtension = originalFileName.substring(originalFileName.lastIndexOf("."));
            String uniqueFileName = java.util.UUID.randomUUID().toString() + fileExtension;

            // 构建目标文件
            File targetFile = new File(dir, uniqueFileName);

            // 完成文件的上传
            file.transferTo(targetFile);
            System.out.println("文件上传成功！路径：" + targetFile.getAbsolutePath());
            // 返回文件的访问路径（假设已配置静态资源路径为 /files/）
            return IP +upload+'/'+ uniqueFileName;
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("文件上传失败：" + e.getMessage());
            return null;
        }
    }

}